package com.cy.demo.interceptor;


import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

//定义一个拦截器
public class LoginInterceptor implements HandlerInterceptor {
    /**
     * 建测全局session对象中是否有uid数据，如果有则放行，没有就重定向到login页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器（url+controller：映射）
     * @return 如果返回值为true表示放行当前的请求，如果返回值为false则表示拦截
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
        //通过HttpServletRequest获取session对象
        Object object=request.getSession().getAttribute("uid");
        if(object==null){//说明用户没有登陆，重定向到login页面
            response.sendRedirect("/web/login.html");
            //结束后续的调用
            return false;
        }
        //请求放行
        return true;
    }
}
